home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / boot / czesc_2 / toolmanager / source / prefs / toolmanagerconf.h < prev    next >
C/C++ Source or Header  |  1993-05-15  |  11KB  |  322 lines

  1. /*
  2.  * ToolManagerConf.h  V2.1
  3.  *
  4.  * configuration program main include file
  5.  *
  6.  * (c) 1990-1993 Stefan Becker
  7.  */
  8.  
  9. /* System include files */
  10. #include <exec/types.h>
  11. #include <exec/memory.h>
  12. #include <dos/dos.h>
  13. #include <envoy/envoy.h>
  14. #include <graphics/gfxbase.h>
  15. #include <intuition/gadgetclass.h>
  16. #define ASL_V38_NAMES_ONLY
  17. #include <libraries/asl.h>
  18. #include <libraries/iffparse.h>
  19. #include <libraries/locale.h>
  20. #include <libraries/toolmanager.h>
  21. #include <prefs/prefhdr.h>
  22.  
  23. /* System function prototypes */
  24. #include <clib/alib_protos.h>
  25. #include <clib/asl_protos.h>
  26. #include <clib/diskfont_protos.h>
  27. #include <clib/dos_protos.h>
  28. #include <clib/envoy_protos.h>
  29. #include <clib/exec_protos.h>
  30. #include <clib/gadtools_protos.h>
  31. #include <clib/graphics_protos.h>
  32. #include <clib/icon_protos.h>
  33. #include <clib/iffparse_protos.h>
  34. #include <clib/intuition_protos.h>
  35. #include <clib/locale_protos.h>
  36. #include <clib/wb_protos.h>
  37.  
  38. /* System function pragmas */
  39. #include <pragmas/asl_pragmas.h>
  40. #include <pragmas/diskfont_pragmas.h>
  41. #include <pragmas/dos_pragmas.h>
  42. #include <pragmas/envoy_pragmas.h>
  43. #include <pragmas/exec_pragmas.h>
  44. #include <pragmas/gadtools_pragmas.h>
  45. #include <pragmas/graphics_pragmas.h>
  46. #include <pragmas/icon_pragmas.h>
  47. #include <pragmas/iffparse_pragmas.h>
  48. #include <pragmas/intuition_pragmas.h>
  49. #include <pragmas/locale_pragmas.h>
  50. #include <pragmas/wb_pragmas.h>
  51.  
  52. /* ANSI C include files */
  53. #include <stdlib.h>
  54. #include <string.h>
  55. #include <ctype.h>
  56.  
  57. /* Compiler specific include files */
  58. #include <lists.h>     /* GetHead() et al. */
  59.  
  60. /* Project specific include files */
  61. #define CATCOMP_NUMBERS
  62. #define CATCOMP_STRINGS
  63. #include "/locale/toolmanager.h"
  64. #include "/ToolManagerPrefs.h"
  65.  
  66. /* Structures */
  67. struct GadgetData {
  68.                    char           *name;
  69.                    ULONG           type;
  70.                    ULONG           flags;
  71.                    struct TagItem *tags;
  72.                    UWORD           left;
  73.                    UWORD           top;
  74.                    UWORD           width;
  75.                    UWORD           height;
  76.                    struct Gadget  *gadget;
  77.                   };
  78.  
  79. struct FileReqParms {
  80.                      struct Window *frp_Window;
  81.                      char          *frp_Title;
  82.                      char          *frp_OKText;
  83.                      ULONG          frp_Flags1;
  84.                      ULONG          frp_Flags2;
  85.                      char          *frp_OldFile;
  86.                     };
  87.  
  88. struct ToolNode {
  89.                  struct Node  tn_Node;
  90.                  char        *tn_Image;
  91.                  char        *tn_Sound;
  92.                 };
  93.  
  94. /* Internal function prototypes */
  95. /* *window.c typedefs */
  96. typedef void         (*UpdateWindowFuncPtr)(void *);
  97. typedef BOOL         (*OpenWindowFuncPtr)(void *, struct Window *);
  98. typedef void         (*HandleAppMsgFuncPtr)(struct AppMessage *);
  99. typedef void        *(*HandleIDCMPFuncPtr)(struct IntuiMessage *);
  100. typedef struct Node *(*CopyNodeFuncPtr)(struct Node *);
  101. typedef void         (*FreeNodeFuncPtr)(struct Node *);
  102. typedef struct Node *(*ReadNodeFuncPtr)(UBYTE *);
  103. typedef BOOL         (*WriteNodeFuncPtr)(struct IFFHandle *, UBYTE *,
  104.                                          struct Node *);
  105.  
  106. /* accesswindow.c */
  107. void         InitAccessEditWindow(UWORD, UWORD);
  108. BOOL         OpenAccessEditWindow(void *, struct Window *);
  109. void         UpdateAccessEditWindow(void *);
  110. void        *HandleAccessEditWindowIDCMP(struct IntuiMessage *);
  111. struct Node *CopyAccessNode(struct Node *);
  112. void         FreeAccessNode(struct Node *);
  113. struct Node *ReadAccessNode(UBYTE *);
  114. BOOL         WriteAccessNode(struct IFFHandle *, UBYTE *, struct Node *);
  115.  
  116. /* aslreqs.c */
  117. char            *OpenFileRequester(struct Requester *);
  118. struct TextAttr *OpenFontRequester(struct Window *, struct Requester *,
  119.                                    struct TextAttr *);
  120.  
  121. /* button.c */
  122. BOOL CalcReqButtonImage(void);
  123. void FreeReqButtonImage(void);
  124. void InitReqButtonGadget(struct Gadget *);
  125.  
  126. /* config.c */
  127. BOOL  ReadConfigFile(char *);
  128. BOOL  WriteConfigFile(char *);
  129. char *GetConfigStr(UBYTE **);
  130. BOOL  PutConfigStr(char *, UBYTE **);
  131.  
  132. /* dockwindow.c */
  133. void         InitDockEditWindow(UWORD, UWORD);
  134. BOOL         OpenDockEditWindow(void *, struct Window *);
  135. void         UpdateDockEditWindow(void *);
  136. void        *HandleDockEditWindowIDCMP(struct IntuiMessage *);
  137. struct Node *CopyDockNode(struct Node *);
  138. void         FreeDockNode(struct Node *);
  139. struct Node *ReadDockNode(UBYTE *);
  140. BOOL         WriteDockNode(struct IFFHandle *, UBYTE *, struct Node *);
  141.  
  142. /* docklistwindow.c */
  143. void         InitDockListEditWindow(UWORD, UWORD);
  144. BOOL         OpenDockListEditWindow(void *, struct Window *);
  145. void         UpdateDockListEditWindow(void *);
  146. void        *HandleDockListEditWindowIDCMP(struct IntuiMessage *);
  147. struct List *CopyToolsList(struct List *);
  148. void         FreeToolsList(struct List *toollist);
  149.  
  150. /* execwindow.c */
  151. void         InitExecEditWindow(UWORD, UWORD);
  152. BOOL         OpenExecEditWindow(void *, struct Window *);
  153. void         UpdateExecEditWindow(void *);
  154. void         HandleExecEditWindowAppMsg(struct AppMessage *);
  155. void        *HandleExecEditWindowIDCMP(struct IntuiMessage *);
  156. struct Node *CreateExecNode(char *, struct WBArg *);
  157. struct Node *CopyExecNode(struct Node *);
  158. void         FreeExecNode(struct Node *);
  159. struct Node *ReadExecNode(UBYTE *);
  160. BOOL         WriteExecNode(struct IFFHandle *, UBYTE *, struct Node *);
  161.  
  162. /* gadget.c */
  163. struct Gadget *CreateGadgetList(struct GadgetData *, ULONG);
  164. void           DisableGadget(struct Gadget *, struct Window *, BOOL);
  165. char          *DuplicateBuffer(struct Gadget *);
  166. char           FindVanillaKey(char *);
  167. ULONG          MatchVanillaKey(unsigned char, char *);
  168.  
  169. /* iconwindow.c */
  170. void         InitIconEditWindow(UWORD, UWORD);
  171. BOOL         OpenIconEditWindow(void *, struct Window *);
  172. void         UpdateIconEditWindow(void *);
  173. void        *HandleIconEditWindowIDCMP(struct IntuiMessage *);
  174. struct Node *CreateIconNode(char *);
  175. struct Node *CopyIconNode(struct Node *);
  176. void         FreeIconNode(struct Node *);
  177. struct Node *ReadIconNode(UBYTE *);
  178. BOOL         WriteIconNode(struct IFFHandle *, UBYTE *, struct Node *);
  179.  
  180. /* imagewindow.c */
  181. void         InitImageEditWindow(UWORD, UWORD);
  182. BOOL         OpenImageEditWindow(void *, struct Window *);
  183. void         HandleImageEditWindowAppMsg(struct AppMessage *);
  184. void        *HandleImageEditWindowIDCMP(struct IntuiMessage *);
  185. struct Node *CreateImageNode(char *, struct WBArg *);
  186. struct Node *CopyImageNode(struct Node *);
  187. void         FreeImageNode(struct Node *);
  188. struct Node *ReadImageNode(UBYTE *);
  189. BOOL         WriteImageNode(struct IFFHandle *, UBYTE *, struct Node *);
  190.  
  191. /* listreq.c */
  192. void  InitListRequester(UWORD, UWORD);
  193. BOOL  OpenListRequester(ULONG, struct Window *);
  194. void *HandleListRequesterIDCMP(struct IntuiMessage *);
  195.  
  196. /* locale.c */
  197. void GetLocale(void);
  198. void FreeLocale(void);
  199.  
  200. /* main.c */
  201. void FreeAllObjects(void);
  202. BOOL CopyFile(char *, char *);
  203.  
  204. /* mainwindow.c */
  205. void   InitMainWindow(UWORD, UWORD);
  206. ULONG  OpenMainWindow(UWORD, UWORD);
  207. void   CloseMainWindow(void);
  208. void   UpdateMainWindow(void *);
  209. void   HandleMainWindowAppMsg(struct AppMessage *);
  210. void  *HandleMainWindowIDCMP(struct IntuiMessage *);
  211. void   UpdateAppMainWindow(void *);
  212.  
  213. /* menuwindow.c */
  214. void         InitMenuEditWindow(UWORD, UWORD);
  215. BOOL         OpenMenuEditWindow(void *, struct Window *);
  216. void         UpdateMenuEditWindow(void *);
  217. void        *HandleMenuEditWindowIDCMP(struct IntuiMessage *);
  218. struct Node *CreateMenuNode(char *);
  219. struct Node *CopyMenuNode(struct Node *);
  220. void         FreeMenuNode(struct Node *);
  221. struct Node *ReadMenuNode(UBYTE *);
  222. BOOL         WriteMenuNode(struct IFFHandle *, UBYTE *, struct Node *);
  223.  
  224. /* movewindow.c */
  225. void  InitMoveWindow(UWORD, UWORD);
  226. void  OpenMoveWindow(struct Window *, struct Gadget *, struct Gadget *);
  227. void  CloseMoveWindow(void);
  228. void *HandleMoveWindowIDCMP(struct IntuiMessage *);
  229.  
  230. /* selectwindow.c */
  231. void  InitSelectWindow(UWORD, UWORD);
  232. BOOL  OpenSelectWindow(void *, struct Window *);
  233. void *HandleSelectWindowIDCMP(struct IntuiMessage *);
  234.  
  235. /* soundwindow.c */
  236. void         InitSoundEditWindow(UWORD, UWORD);
  237. BOOL         OpenSoundEditWindow(void *, struct Window *);
  238. void        *HandleSoundEditWindowIDCMP(struct IntuiMessage *);
  239. struct Node *CopySoundNode(struct Node *);
  240. void         FreeSoundNode(struct Node *);
  241. struct Node *ReadSoundNode(UBYTE *);
  242. BOOL         WriteSoundNode(struct IFFHandle *iff, UBYTE *, struct Node *);
  243.  
  244. /* window.c */
  245. void CloseWindowSafely(struct Window *);
  246. void DisableWindow(struct Window *, struct Requester *);
  247. void EnableWindow(struct Window *, struct Requester *, ULONG);
  248.  
  249. /* System library base pointers */
  250. extern struct Library *AslBase;
  251. extern struct Library *DiskfontBase;
  252. extern struct Library *DOSBase;
  253. extern struct Library *GadToolsBase;
  254. extern struct GfxBase *GfxBase;
  255. extern struct Library *IconBase;
  256. extern struct Library *IFFParseBase;
  257. extern struct Library *IntuitionBase;
  258. extern struct Library *SysBase;
  259. extern struct Library *WorkbenchBase;
  260.  
  261. /* Global data */
  262. extern char                 *ProgramName;
  263. extern UpdateWindowFuncPtr   UpdateWindow;
  264. extern HandleAppMsgFuncPtr   HandleAppMsg;
  265. extern struct Window        *CurrentWindow;
  266. extern FreeNodeFuncPtr       FreeNodeFunctions[];
  267. extern char                 *AppStrings[];
  268. extern struct List           ObjectLists[];
  269. extern struct List           PubScreenList;
  270. extern struct RastPort       TmpRastPort;
  271. extern struct NewGadget      NewGadget;
  272. extern struct FileReqParms   FileReqParms;
  273. extern struct Screen        *PublicScreen;
  274. extern void                 *ScreenVI;
  275. extern struct TextAttr       ScreenTextAttr;
  276. extern struct TextFont      *ScreenFont;
  277. extern struct MsgPort       *IDCMPPort;
  278. extern struct MsgPort       *AppMsgPort;
  279. extern struct Window        *MoveWindowPtr;
  280. extern ULONG                 MoveWindowOffX,MoveWindowOffY;
  281. extern BOOL                  OSV39;
  282. extern BOOL                  WBScreen;
  283. extern BOOL                  CreateIcons;
  284. extern UWORD                 WindowTop;
  285. extern UWORD                 ListViewColumns;
  286. extern UWORD                 ListViewRows;
  287. extern UWORD                 WBXOffset;
  288. extern UWORD                 WBYOffset;
  289. extern const struct TagItem  DisabledTags[];
  290. extern const char            PrefsFileName[];
  291. extern const char            SavePrefsFileName[];
  292.  
  293. /* Global defines */
  294. #define TMVERSION  "2"
  295. #define TMREVISION "1"
  296. #define TMCRYEAR   "1990-93"
  297.  
  298. #define REQBUTTONWIDTH 20
  299. #define SGBUFLEN 256
  300.  
  301. #define LISTREQ_EXEC  0
  302. #define LISTREQ_IMAGE 1
  303. #define LISTREQ_SOUND 2
  304. #define LISTREQ_DOCK  3
  305. #define LISTREQ_PUBSC 4
  306. #define LREQRET_CANCEL   ((void *) -1)
  307. #define LREQRET_NOSELECT ((void *) -2)
  308.  
  309. #ifdef DEBUG
  310. __stkargs void kputs(char *);
  311. __stkargs char kgetc(void);
  312. __stkargs void kprintf(char *,...);
  313.  
  314. #define DEBUG_PUTSTR(a) kputs(a);
  315. #define DEBUG_GETCHR    kgetc();
  316. #define DEBUG_PRINTF(a,b)  kprintf(a,b);
  317. #else
  318. #define DEBUG_PUTSTR(a)
  319. #define DEBUG_GETCHR
  320. #define DEBUG_PRINTF(a,b)
  321. #endif
  322.